package com.castle.fortress.admin.goods.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.castle.fortress.admin.goods.dto.GoodsOptionDto;
import com.castle.fortress.admin.goods.entity.GoodsOptionEntity;

import java.util.List;

/**
 * 商品规格项目详情 服务类
 *
 * @author majunjie
 * @since 2021-11-25
 */
public interface GoodsOptionService extends IService<GoodsOptionEntity> {

    /**
     * 分页展示商品规格项目详情列表
     * @param page
     * @param goodsOptionDto
     * @return
     */
    IPage<GoodsOptionDto> pageGoodsOption(Page<GoodsOptionDto> page, GoodsOptionDto goodsOptionDto);

    /**
    * 分页展示商品规格项目详情扩展列表
    * @param page
    * @param goodsOptionDto
    * @return
    */
    IPage<GoodsOptionDto> pageGoodsOptionExtends(Page<GoodsOptionDto> page, GoodsOptionDto goodsOptionDto);
    /**
    * 商品规格项目详情扩展详情
    * @param id 商品规格项目详情id
    * @return
    */
    GoodsOptionDto getByIdExtends(Long id);

    /**
     * 展示商品规格项目详情列表
     * @param goodsOptionDto
     * @return
     */
    List<GoodsOptionDto> listGoodsOption(GoodsOptionDto goodsOptionDto);

    /**
     * 删除商品的规格项目详情
     * @param goodsId
     */
    void deleteByGoodsId(Long goodsId);

    /**
     * 获取商品的规格项详情
     * @param goodsId 商品id
     * @return
     */
    List<GoodsOptionDto> listByGoodsId(Long goodsId);
}
